Network communications have become a fundamental part of today's computing. It is not uncommon to find two or more computer systems collaboratively working together to solve problems such as simulations, modeling, forecasting, etc. In fact, these efforts have been so successful, users have been inclined to design and implement larger networks.
As the networks grow larger, increasingly complex, and interface with a variety of diverse networks, it is the task of a network manager to keep track of the devices on the networks, to monitor performances and load, diagnose, and correct problems with the network.
While products that manage homogeneous networks have been available, managing heterogeneous networks is more complex, and a generally accepted heterogeneous network management standard did not exist. More recently, Simple Network Management Protocol (SNMP) was developed to provide a heterogeneous network management standard.
SNMP has since become widely accepted as the protocol of choice for managing Transmission Control Protocol/Internet Protocol (TCP/IP) based network systems. SNMP provides network managers the capability to monitor and to control network devices and the systems which contain SNMP agents, independent of the network topology or complexity.
The SNMP model of a managed network consists of four types of components: (1) managed nodes; (2) management stations; (3) management information; and, (4) a management protocol. The managed nodes can be hosts, routers, bridges, printers or any other devices capable of communicating status information to the management stations. Management stations monitor and manage the devices on the network. The management information contains information on the components of the network. The management protocol is the format in which this information is communicated to the management system.
A management station communicates with agents over the network using the SNMP protocol, which allows the management station to query the state of the specified agent's local objects and modify them as necessary. Therefore, the management station communicates with the management information bases of each agent. SNMP provides the following four basic operations for communication: (1) “Get”, which is used to retrieve specific management information; (2) “Get-Next”, which is used to retrieve via traversal, management information; (3) “Set”, which is used to manipulate management information; and, (4) “Trap”, which is used to report extraordinary events. By using these operators, the SNMP manager application may communicate with the agents to identify the agents and to determine statistical information, such as network traffic flow through a given computer network.
SNMP messages contain two parts: (1) a message header and (2) a protocol data unit. The message header comprises a version number and a community name. The community name serves to define an access environment for a set of network management stations using the community name. Additionally, since devices which do not know the proper community name are precluded from SNMP operations, network managers may also use the community name as a weak form of authentication.
The data portion of an SNMP message contains the specified SNMP operation, e.g., “Get”, “Get-Next”, “Set” or “Trap”, as well as the operation's associated data. FIG. 6 depicts the format for the data portion. The format for a “Get”, “Get-Next”, or “Set” command 600 includes four fields. The first is a request-ID field 602, which associates requests with responses. The second is an error status field 604, which indicates an error and an error type. The third is an error index field 606, which associates the error with a particular variable in the variable bindings. The fourth is a variable bindings field 608, which comprises the data. Each variable binding associates a particular variable with its current value (except in “Get” and “Get-Next” requests, where the value is ignored).
The format for a “Trap” command 610 includes six fields. The first is an enterprise field 612, which identifies the type of the object generating the trap. The second is an agent address field 614, which provides the address of the object generating the trap. The third is a generic trap type field 616, which provides the generic trap type. The fourth field is a specific trap type code 618, which provides the specific trap type. The fifth field is a time stamp field 620, which provides the amount of time that has elapsed between the last network re-initialization and generation of this trap. The sixth field is the variable bindings field 622, which provides a list of variables containing information of interest about the trap.
FIG. 7 is a block diagram which illustrates an example of a conventional network utilizing the SNMP model. Management station 710 controls a plurality of nodes 712a, 712b, 712c which in the figure include two computers 718a, 718b at nodes 712a, 712b, respectively, and a printer 720 at node 712c. In order for an SNMP management station 710 to manage a node directly, the node must be able to run an SNMP agent. The SNMP management station and/or agent processes are normally encoded in software. A hardware implementation for use with certain nodes is also possible. In FIG. 7, the agents 714a, 714b running on each of the computers 718a, 718b, respectively, would most likely be encoded in software, whereas the agent 714c for the printer 720 would most likely be a hardware implementation.
In the SNMP protocol, each SNMP agent may maintain one or more variables that describe the node's state. These variables are also called “objects” and are identified by an “Object Identifier” (OID). Related managed objects are grouped together in a data structure called a “Management Information Base” (MIB). FIG. 8 illustrates two different examples of SNMP agents. The first agent 830 contains a management information base 832. It is also possible to have multiple management information bases within each agent, as seen in the second agent 834, which contains management information bases 836 and 838. In addition, each node on the network may have different types of management information bases such as expression MIB 840, 842.
A MIB is maintained by its respective agent which contain OIDs that may describe the current and past states of the node to which it is assigned, as well as provide instructions to affect the operation of the node. The management stations then carry out the management of the network. The management stations have one or more processes that communicate with the SNMP agents through the network by issuing commands and getting responses. One of the advantages of this design is much of the complexity of the system is located in the management stations, rather than in the SNMP agents, allowing the agents to be as simple as possible in order to minimize their effect on the nodes on which they are running.
In typical communication with an agent, a management station may request multiple objects with a single “Get” command from a destination agent. However, if one of the requested objects does not exist on the destination agent, the entire “Get” command fails. The SNMP protocol cannot guarantee that the retrieved data is reliable. Accordingly, a user of the management station is not assured of the reliability of the requested objects.
In response to this failure, a user of the management station may decide to issue single “Get” command on each of the requested objects. However, this increases the time that a user has to spend in retrieving the requested objections. Moreover, issuing multiple “Get” commands increases the traffic on the network between the agent and the management station, which may lead to congestion and performance degradation in the network.